package com.vhall.component.controller.record.facade;

import com.alibaba.fastjson.JSONObject;
import com.vhall.component.entity.record.vo.*;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;

import java.util.List;

/**
 * @author dongsong
 */
@FeignClient(value = "RecordAdminFacade", path = "/v4/record/admin")
public interface RecordAdminFacade {

    /**
     * 营后台获取回放列表
     *
     * @param reqVo
     * @return
     */
    @GetMapping("/list")
    GetRecordListRspVo list(@Validated GetRecordListReqVo reqVo);

    /**
     * 运营后台设置默认回放
     *
     * @param reqVo
     * @return
     */
    @GetMapping("/set-default-record")
    List<Object> setDefaultRecord(@Validated SetDefaultRecordReqVo reqVo);

    /**
     * 运营后台删除回放
     *
     * @param reqVo
     * @return
     */
    @GetMapping("/delete")
    JSONObject delete(@Validated DeleteRecordReqVo reqVo);

    /**
     * 运营后台获取回放信息
     *
     * @param reqVo
     * @return
     */
    @GetMapping("/get")
    GetRecordRspVo get(@Validated GetRecordReqVo reqVo);

    /**
     * 控制台-媒资管理-音视频管理-获取回放列表
     *
     * @param reqVo
     * @return
     */
    @GetMapping("/upload/list")
    GetUploadListRspVo uploadList(GetUploadListReqVo reqVo);

    /**
     *  添加回放
     *
     * @param reqVo
     * @return
     */
    @PostMapping("/add")
    Boolean add(@Validated GetRecordListReqVo reqVo);
}
